﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AMS.Chess.CommonLayer
{
    public abstract class AMoveFactory
    {
        protected AChessBoard _board;

        public AMoveFactory(AChessBoard board)
        {
            _board = board;
        }

        // consider moving all this code into the Piece instantiation and using it as an example of the Factory Method pattern

        public abstract AMove CreatePawnMove();
        public abstract AMove CreateKnightMove();
        public abstract AMove CreateBishopMove();
        public abstract AMove CreateRookMove();
        public abstract AMove CreateQueenMove();
        public abstract AMove CreateKingMove();

        public abstract AMove CreateMove(Type t);
    }
}
